This invention relates to a method and device for identifying network conditions.
Real-time streaming of multimedia content over the internet has become an increasingly common application in recent years. A wide range of multimedia applications, such as on-demand TV, live TV viewing, audio streaming, video conferencing, net meetings, video telephony, voice over internet protocol (VoIP) and many others rely on end-to-end streaming solutions. Unlike a “downloaded” media file, which may be retrieved first in “non-real” time and played back later, streaming media applications require a media source to encode and to transmit a media signal over a network to a media receiver, which must decode and playback the media signal in real time.
Problems can arise when streaming media across a network, such as the Internet. For example, the network link between a pair of network end-points may become congested, which can lead to a deterioration in the quality of service of that link. The effects of network congestion includes queueing delay, packet loss and blocking of new connections. This, in turn, can lead to a degradation in the quality and timeliness of the media being played out at the receiving end-point.
One of the causes of network congestion is buffer-bloat. Network elements usually employ buffers to accommodate bursty incoming traffic. These buffers begin to be filled or bloated whenever incoming bandwidth exceeds outgoing bandwidth. This can cause packets to become queued in those buffers for a significant period of time, especially in network elements that have large buffers. In a first-in first-out queuing system, overly large buffers of network elements result in longer queues and higher latency which causes the network to be congested.
When streaming real-time media, for example, it may be desirable for the device transmitting the media stream to quickly adapt its transmission parameters in response to changes in the network so that real-time playback can be maintained at the receiving device. For example, when the network becomes congested, the transmitting device may reduce the transmission bandwidth of the media stream by reducing the quality of the media so that the media stream does not congest the network further and so that it takes less time for packets to reach the receiving device over the congested network. In order to quickly and appropriately adapt the transmission properties of the media stream in response to changeable network conditions, there is a need to be able to detect changes in the condition of the network and to determine the cause of those changes.